import { ref, computed } from 'vue'
import { defineStore } from 'pinia'

import { LoginData } from '@/types/login'
export const useMemberStore = defineStore('member', () => {
  const member = ref<LoginData>()
  // 保存登录信息，登录时使用
  const setProfile = (val: LoginData) => {
    member.value = val
    console.log('登录成功，保存用户信息', token.value)
  }

  // 清理登录信息，退出时使用
  const clearProfile = () => {
    member.value = undefined
  }
  // 计算属性：安全获取 token
  const token = computed(() => member.value?.token || '')
  return { member, setProfile, clearProfile, token }
},
{
  persist: {
    storage: localStorage, // 存储到 localStorage（刷新不丢失，默认值）
    // 或用 sessionStorage（关闭标签页后丢失）：storage: sessionStorage

    paths: ['member'] // 指定需要持久化的状态字段（只持久化 member）
    // 如果需要更精确（只持久化 token），可写成：paths: ['member.token']
  }
})
